/*
 * Copyright (c) [2012] - [2017] Red Hat, Inc.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   Red Hat, Inc. - initial API and implementation
 */
package org.eclipse.che.ide.ext.bitbucket.shared;

import java.util.List;
import org.eclipse.che.dto.shared.DTO;

/**
 * Represents a Bitbucket repository.
 *
 * @author Kevin Pollet
 */
@DTO
public interface BitbucketRepository {
  String getName();

  void setName(String name);

  BitbucketRepository withName(String name);

  BitbucketRepository getParent();

  void setParent(BitbucketRepository parent);

  BitbucketRepository withParent(BitbucketRepository parent);

  boolean isIsPrivate();

  void setIsPrivate(boolean isIsPrivate);

  BitbucketRepository withIsPrivate(boolean isIsPrivate);

  BitbucketRepositoryLinks getLinks();

  void setLinks(BitbucketRepositoryLinks links);

  BitbucketRepository withLinks(BitbucketRepositoryLinks links);

  BitbucketUser getOwner();

  void setOwner(BitbucketUser owner);

  BitbucketRepository withOwner(BitbucketUser owner);

  String getFullName();

  void setFullName(String fullName);

  BitbucketRepository withFullName(String fullName);

  @DTO
  interface BitbucketRepositoryLinks {
    List<BitbucketLink> getClone();

    void setClone(List<BitbucketLink> clone);

    BitbucketRepositoryLinks withClone(List<BitbucketLink> clone);
  }
}
